module ConteudoHelper

#def conteudo_estado_form_column(record,input_name)
#  ids = []
#  ConteudoEstado.find_all.each do |conteudo|
#    ids << [conteudo.nome,conteudo.id]
#  end
#  select(:record,:conteudo_estado_id,ids)
#end

#def config_item_form_column(record,input_name)
#  ids = []
#  ConfigItem.find_all.each do |config|
#    ids << [config.nome,config.id]
#  end
#  select(:record,:config_item_id,ids)
#end

def descricao_form_column(record,input_name)
  text_area(:record,:descricao)
end

def user_form_column(record,input_name) 
  "upa"
end

def img_editor(conteudo)
  '<img border=0 src="' << url_for(:controller=>'conteudo_front',:action => "imagem", :id => conteudo.id, :params=>{:tipo=>'editor'}) << '"/>'
end

def list_row_class(record)
  record.user_id == current_user.user_id ? 'usuarioAtual' : 'outroUsuario'
end

def migalhas_de_pao(conteudo)
  ret = ""
  cont = conteudo 
  while(cont) 
    nivel = icone_config_conteudo(cont.config_conteudo) << cont.nome
    if(cont.config_conteudo.pasta)
      ret = " >> " << link_to( nivel , filhos_conteudo_url(cont)  ) << ret
    else
      ret = " >> " << link_to( nivel , conteudo_url(cont)  ) << ret
    end
    cont = cont.parent
  end
  ret
end

def abas(conteudo)
  raise "conteudo inválido" if(!conteudo)
  actions = [['Conteudos',"/conteudo/#{conteudo.id}/filhos"],
             ['Publicacao',"/conteudo/#{conteudo.id}/publicacao"],
             ['Classificacao',"/conteudo/#{conteudo.id}/classificacao"],
             ['Ver',"/conteudo/#{conteudo.id}/prever"],
             ['Editar',"/conteudo/#{conteudo.id}/edit"],
             ['Template',"/conteudo/#{conteudo.id}/tpl_escolhido"],
             ['Permissoes',"/conteudo/#{conteudo.id}/permissoes"]
             ]
  
  ret = ""
  #actions.each do |a|
  #      a[2] = current_user.tem_permissao?('conteudo',a[1],conteudo.id)
  #end
  
  #if (current_user.tem_permissao?('conteudo','permissoes',conteudo.id)) 
  #  actions << ['Permissoes','permissoes',true]
  #else 
  #  if (current_user.tem_permissao?('conteudo','editar',conteudo.id))
  #    actions << ['Ver Permissoes','ver_permissoes',true]
  #  end
  #end
  
  actions.each do |a|
      #if( a[2] )
        #ativo = (params[:action] == a[1]) ? '_ativo' : '' 
        #ret << link_to(a[0],{:action=>a[1],:id=>conteudo},{'class'=>'tab_link'<<ativo}) << " "  
        ret << link_to( a[0] , a[1] , {'class'=>'tab_link'} )
      #end
  end
  ret
end

def classificador(conteudo)
  conteudo.carregar_categorias
  
  if (conteudo.categorias_lidas.size > 0) 
    saida = "Para conteudos do tipo " + conteudo.config_conteudo.nome + " temos as categorizacoes abaixo. Escolha as categorias que melhor se aplicam, nas arvores a direita.<br/>"
    pp conteudo.categorias_lidas
    conteudo.categorias_lidas.each_pair do |categorizacao,categoria|
      saida << "<br/>" << categorizacao.categoria.nome << "<br/>"
      saida << "<input type=text id='categoria_nome_#{categorizacao.categoria_id}' name='conteudo[categoria_nome][#{categorizacao.categoria_id}]' value='" 
      saida << (categoria.nil? ? '' : categoria.nome) << "'>"
      saida << " <input type=hidden id='categoria_id_#{categorizacao.categoria_id}' name='conteudo[categorias_para_relacionar][#{categorizacao.categoria_id}]' value='"+(categoria.nil? ? '' : categoria.id.to_s)+"'>" 
    end
  else
    saida = "Para conteudos do tipo " + conteudo.config_conteudo.nome + " n�o existem categorizacoes."
  end
  saida
end


def select_criar_conteudo(conteudo_pai)
  ret = "<select onchange='document.location=\"/conteudo/"<<conteudo_pai.id.to_s<<"/criar_filho?config_conteudo_id=\"+this.options[this.selectedIndex].value'>"
  ret << "<option value=0 selected>-- escolha o tipo --</option>"
  ConfigConteudo.ids_e_nomes.each_pair do |id,nome|
    ret << "<option value='#{id}'>#{nome}</option>"
  end
  ret << "</select>"
  ret
end

def select_paginas(ordem_selecionado)
  ret = "<select onchange='trocar_pagina(this.options[this.selectedIndex].value)'>"
  #ret << "<option value=0>-- escolha uma pagina --</option>"
  @conteudo.conteudo_pagina.each do |pagina|
    ret << "<option value='#{pagina.ordem}' " +
           (pagina.ordem == ordem_selecionado ? 'selected' : '' ) + 
           " >#{pagina.nome}</option>"
  end
  ret << "</select>"
  ret
end

####### AQUI PODEMOS APENAS RETORNAR AS OP��ES INDEXADAS, GERANDO O SELECT NO FORM, PARA PODER 
####### POVOAR COM O FORM_HELPER DO SELECT MESMO.

def mostrar_select_categorizacao(categorizacao,id_selecionado)
  ret = "<select name='filtro[categorizacao]["+categorizacao.id.to_s+"][categoria_id]'>"
  nivel = 0;
  ret << mostrar_option_categoria(categorizacao,nivel,id_selecionado)
  ret << "</select>" 
end

def mostrar_option_categoria(categoria,nivel,id_selecionado)
  marcador_nivel = '>>'
  ret =  '<option value='+categoria.id.to_s+' '+(id_selecionado == categoria.id ? 'selected' : '' )+'>'
  ret << (marcador_nivel*nivel)+categoria.nome
  ret << '</option>'
  nivel += 1
  categoria.children.each do |subcat|
    ret << mostrar_option_categoria(subcat,nivel,id_selecionado)
  end
  nivel -= 1
  ret
end


end
